package com.zhanghe.study.design_pattern.observer_pattern;

import java.util.ArrayList;
import java.util.List;

/**
 * 目标对象
 * @author zh
 * @date 2022/10/13 14:22
 */
public class Subject {
    // 保存观察者对象
    private List<Observer> observers = new ArrayList<>();

    // 注册观察者
    public void attach(Observer observer){
        observers.add(observer);
    }

    // 删除观察者
    public void detach(Observer observer){
        observers.remove(observer);
    }

    // 通知观察者
    public void notifyObservers(){
        for(Observer observer : observers){
            observer.update(this);
        }
    }
}
